<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2021/11/22
 * Time: 13:29
 */
namespace phpfuntions\mp_net;
class myphp_socket_operate
{

//Socket操作类  函数　

    /**
     * socket_clear_error   函数 ：　  函数：清空Socket错误信息或者最后一个错误代码
     * @access public
     * @return
     */
    public static function socket_clear_error ($socket = null) {
        return socket_clear_error( $socket );

    }

    /**
     * Socket_create_listen   函数 ：　  函数：在Socket上打开一个端口接受连接
     * @access public
     * @return
     */
    public static function Socket_create_listen ($port, $backlog = 128) {
        return Socket_create_listen( $port, $backlog);

    }

    /**
     * Socket_get_option   函数 ：　  函数：获取Socket的设置选项
     * @access public
     * @return
     */
    public static function Socket_get_option ($socket, $level, $optname) {
        return Socket_get_option($socket, $level, $optname );

    }

    /**
     * socket_getpeername   函数 ：　  函数：获取远程主机的Socket信息　
     * @access public
     * @return
     */
    public static function socket_getpeername ($socket, &$address, &$port = null) {
        return socket_getpeername( $socket, $address, $port );

    }

    /**
     * Socket_getsockname   函数 ：　  函数：获取本地主机的Socket信息
     * @access public
     * @return
     */
    public static function Socket_getsockname ($socket, &$addr, &$port = null) {
        return Socket_getsockname( $socket, $addr, $port );

    }

    /**
     * socket_last_error   函数 ：socket_last_error  函数：返回Socket最后一个错误代号　
     * @access public
     * @return
     */
    public static function  socket_last_error($socket = null) {
        return socket_last_error($socket  );

    }

    /**
     * Socket_read   函数 ：　  函数：从连接中读取设置的最大长度的字节数　
     * @access public
     * @return
     */
    public static function Socket_read ($socket, $length, $type = PHP_BINARY_READ) {
        return Socket_read( $socket, $length, $type );

    }

    /**
     * Socket_recv   函数 ：　  函数：从一个连接的Socket中接收数据
     * @access public
     * @return
     */
    public static function Socket_recv ($socket, &$buf, $len, $flags) {
        return Socket_recv( $socket, $buf, $len, $flags);

    }

    /**
     * Socket_recvfrom   函数 ：　  函数：接收数据，不管连接是否断开
     * @access public
     * @return
     */
    public static function Socket_recvfrom ($socket, &$buf, $len, $flags, &$name, &$port = null) {
        return Socket_recvfrom( $socket, $buf, $len, $flags, $name, $port);

    }

    /**
     * socket_select   函数 ：　  函数：查询Socket状态
     * @access public
     * @return
     */
    public static function socket_select (array &$read, array &$write, array &$except, $tv_sec, $tv_usec = 0) {
        return socket_select($read, $write, $except, $tv_sec, $tv_usec  );

    }

    /**
     * socket_send   函数 ：　  函数：发送数据　
     * @access public
     * @return
     */
    public static function socket_send ($socket, $buf, $len, $flags) {
        return socket_send($socket, $buf, $len, $flags );

    }

    /**
     * socket_sendto   函数 ：　  函数：发送一条消息到Socket，不管连接是否断开　
     * @access public
     * @return
     */
    public static function socket_sendto ($socket, $buf, $len, $flags, $addr, $port = 0) {
        return socket_sendto( $socket, $buf, $len, $flags, $addr, $port );

    }

    /**
     * socket_set_block   函数 ：　  函数：锁定Socket
     * @access public
     * @return
     */
    public static function socket_set_block ($socket) {
        return socket_set_block($socket );

    }

    /**
     * Socket_set_nonblock   函数 ：　  函数：设置不锁定状态　
     * @access public
     * @return
     */
    public static function Socket_set_nonblock ($socket) {
        return Socket_set_nonblock($socket );

    }

    /**
     * socket_set_option   函数 ：　  函数：设置Socket连接选项
     * @access public
     * @return
     */
    public static function socket_set_option ($socket, $level, $optname, $optval) {
        return socket_set_option( $socket, $level, $optname, $optval);

    }

    /**
     * socket_shutdown   函数 ：　  函数：关闭一个Socket连接　
     * @access public
     * @return
     */
    public static function socket_shutdown ($socket, $how = 2) {
        return socket_shutdown($socket, $how  );

    }

    /**
     * socket_strerror   函数 ：　  函数：返回一个包含Socket错误信息的字符串
     * @access public
     * @return
     */
    public static function socket_strerror ($errno) {
        return socket_strerror( $errno);

    }

    /**
     * socket_write   函数 ：　  函数：写入一个Socket　
     * @access public
     * @return
     */
    public static function socket_write ($socket, $buffer, $length = 0) {
        return socket_write( $socket, $buffer, $length );

    }
}